Modular Termination Verification for Non-blocking Concurrency

نویسندگان

  • Pedro da Rocha Pinto
  • Thomas Dinsdale-Young
  • Philippa Gardner
  • Julian Sutherland
چکیده

We present Total-TaDA, a program logic for verifying the total correctness of concurrent programs: that such programs both terminate and produce the correct result. With Total-TaDA, we can specify constraints on a thread’s concurrent environment that are necessary to guarantee termination. This allows us to verify total correctness for nonblocking algorithms, e.g. a counter and a stack. Our specifications can express lockand wait-freedom. More generally, they can express that one operation cannot impede the progress of another, a new non-blocking property we call non-impedance. Moreover, our approach is modular. We can verify the operations of a module independently, and build up modules on top of each other.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Modular Verification of Finite Blocking in Non-terminating Programs

Most multi-threaded programs synchronize threads via blocking operations such as acquiring locks or joining other threads. An important correctness property of such programs is for each thread to make progress, that is, not to be blocked forever. For programs in which all threads terminate, progress essentially follows from deadlock freedom. However, for the common case that a program contains ...

متن کامل

Modular fine-grained concurrency verification

Traditionally, concurrent data structures are protected by a single mutual exclusion lock so that only one thread may access the data structure at any time. This coarse-grained approach makes it relatively easy to reason about correctness, but it severely limits parallelism. More advanced algorithms instead perform synchronisation at a finer grain. They employ sophisticated synchronisation sche...

متن کامل

Terminating Tableaux for Modal Logic with Transitive Closure

We present a terminating tableau system for the modal logic K∗. K∗ extends the basic modal logic K with a reflexive transitive closure operator for relations and is a proper fragment of propositional dynamic logic. We investigate two different approaches to achieve termination, namely chain-based blocking and pattern-based blocking. Pattern based-blocking has not been applied to a modal logic w...

متن کامل

Normality: A Consistency Condition for Concurrent Objects

Linearizability is a consistency condition for concurrent objects (objects shared by concurrent processes) that exploits the semantics of abstract data types. It provides the illusion that each operation applied by concurrent processes takes eeect instantaneously at some point between the beginning and the end of its execution. When compared with other consistency conditions (such as sequential...

متن کامل

Deadlock-Free Channels and Locks

The combination of message passing and locking to protect shared state is a useful concurrency pattern. However, programs that employ this pattern are susceptible to deadlock. That is, the execution may reach a state where each thread in a set waits for another thread in that set to release a lock or send a message. This paper proposes a modular verification technique that prevents deadlocks in...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016